<?php
	if (!defined('BASEPATH')) exit('No direct script access allowed');

	class MY_Language extends CI_Language {
		/**
		 * Constructor
		 */
		function MY_Language(){
			parent::CI_Language();
		}

		/**
		 * Load a language file
		 *
		 * @access	public
		 * @param	mixed	the name of the language file to be loaded. Can be an array
		 * @param	string	the language (english, etc.)
		 * @return	mixed
		 */
		function load($langfile = '', $idiom = '', $return = FALSE)
		{
			$CI =& get_instance();
			if (!isset($CI->session)) $CI->load->library('session');
			if (!empty($langfile) && (strlen($idiom)==2) && (($i18n_manager = $CI->session->userdata('i18n_manager')) !== FALSE)){
				if(!is_array($i18n_manager)){
					$i18n_manager = array($langfile);
				}else{
					array_push($i18n_manager, $langfile);
					$i18n_manager = array_unique($i18n_manager);
				}
				$CI->session->set_userdata('i18n_manager', $i18n_manager);
			}

			$langfile = str_replace(EXT, '', str_replace('_lang.', '', $langfile)).'_lang'.EXT;

			if (in_array($langfile, $this->is_loaded, TRUE))
			{
				return;
			}

			if ($idiom == '')
			{
				$CI =& get_instance();
				$deft_lang = $CI->config->item('language');
				$idiom = ($deft_lang == '') ? 'english' : $deft_lang;
			}

			// Determine where the language file is and load it
			if (file_exists(APPPATH.'language/'.$idiom.'/'.$langfile))
			{
				include(APPPATH.'language/'.$idiom.'/'.$langfile);
			}
			else
			{
				if (file_exists(BASEPATH.'language/'.$idiom.'/'.$langfile))
				{
					include(BASEPATH.'language/'.$idiom.'/'.$langfile);
				}
				else
				{
					// HAY QUE PONER EL APP PATH PARA QUE FUNCIONE CON LA COPIA DE RIVES
					$CI = & get_instance();
					$CI->config->load('whilewairport',TRUE,FALSE);
					$idiom = $CI->config->item('def_lang', 'whilewairport');
					if (file_exists(APPPATH.'language/'.$idiom.'/'.$langfile)){
						include(APPPATH.'language/'.$idiom.'/'.$langfile);
					}else{
						if (file_exists(BASEPATH.'language/'.$idiom.'/'.$langfile))
						{
							include(BASEPATH.'language/'.$idiom.'/'.$langfile);
						}else show_error('Unable to load the requested language file: language/'.$idiom."/".$langfile);
					}
				}
			}

			if ( ! isset($lang))
			{
				log_message('error', 'Language file contains no data: language/'.$idiom.'/'.$langfile);
				return;
			}

			if ($return == TRUE)
			{
				return $lang;
			}

			$this->is_loaded[] = $langfile;
			$this->language = array_merge($this->language, $lang);
			unset($lang);

			log_message('debug', 'Language file loaded: language/'.$idiom.'/'.$langfile);
			return TRUE;
		}

		/**
		 * Fetch a single line of text from the language array
		 *
		 * @access	public
		 * @param	string	$line 	the language line
		 * @return	string
		 */
		function line($linep = '')
		{
			$line = ($linep == '' OR ! isset($this->language[$linep])) ? "_".$linep."_" : $this->language[$linep];
			return $line;
		}

		function getAll(){
			return $this->language;
		}

	}
/* end of file */